Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

specs/20260520-153428-remove-admin-channel-toggle/spec.md 212bc596e37fd45e75b830e36cd825972f12cf79 (212bc596) Text, 6.53 KB

Feature Specification: Remove Admin Channel Enabled Toggle

Feature Branch: T383838jamesarich-issue-5545-alignment-remove-admin-channel-enabled-ca777c
Created: 2025-05-20
Status: Draft
Input: User description: "Remove adminchannelenabled toggle from the Security Config screen"
Cross-Platform Spec: N/A β€” platform alignment removal (aligning Android with Apple client behavior)

Summary

Remove the T383838admin_channel_enabled toggle from the Security Config settings screen in the Android client. This toggle is Android-only, not present in the Apple client, and has been identified as a cross-platform discrepancy in the settings validation audit. With PKC-based administration becoming the default approach, this toggle creates user confusion and should be removed to align both clients.

Goals

β€’ Remove the T383838admin_channel_enabled UI toggle from the Security Config screen
β€’ Align the Android client's Security Config screen with the Apple client
β€’ Reduce user confusion around legacy admin channel configuration
β€’ Maintain full PKC-based admin functionality without regression

Non-Goals

β€’ Removing or modifying the underlying T383838admin_channel_enabled proto field (it remains in the protobuf schema)
β€’ Changing any backend/firmware behavior related to admin channels
β€’ Modifying PKC-based administration logic
β€’ Removing string resources from locale files (cleanup can be done separately)

User Scenarios & Testing (mandatory)

User Story 1 - Security Config Screen Without Legacy Toggle (Priority: P1)

As a user navigating to the Security Config screen, I no longer see the T383838admin_channel_enabled toggle, resulting in a cleaner interface focused on PKC-based administration.

Why this priority: This is the core deliverable β€” removing the toggle from the UI.

Independent Test: Can be fully tested by navigating to the Security Config screen and verifying the toggle is absent, while all other security settings remain functional.

Acceptance Scenarios:

1. Given a user opens the Security Config screen, When the screen renders, Then the T383838admin_channel_enabled toggle and its associated divider are not displayed.
2. Given a user opens the Security Config screen, When reviewing available settings, Then all other security configuration options remain visible and functional.


User Story 2 - PKC Admin Functionality Unaffected (Priority: P1)

As a user performing administrative actions via PKC-based administration, the removal of the toggle does not affect my ability to manage nodes.

Why this priority: Ensuring no regression in core admin functionality is critical.

Independent Test: Can be tested by performing PKC-based admin operations (e.g., remote node configuration) after the toggle removal and verifying they succeed.

Acceptance Scenarios:

1. Given a user has PKC-based admin configured, When they perform a remote admin operation, Then the operation completes successfully as before.
2. Given a device had T383838admin_channel_enabled previously set to true, When the user opens Security Config, Then the setting value persists in the proto config but is simply not shown in the UI.


Edge Cases

β€’ What happens when a device has T383838admin_channel_enabled set to T383838true in its stored config? The value remains in the proto; it is simply no longer surfaced or toggleable in the UI.
β€’ What happens on config export/import? The field remains in the protobuf schema, so existing exports with the field set remain valid and importable.

Architecture

Key Components

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Component β”‚ Module / File β”‚ Purpose β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ SecurityConfigScreen β”‚ T383838feature/settings/sr… β”‚ Screen where the toggle is removed β”‚
β”‚ String resources β”‚ T383838core/resources/src/… β”‚ T383838legacy_admin_channel string (unused after removal) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Requirements (mandatory)

Functional Requirements

β€’ FR-001: The Security Config screen MUST NOT display the T383838admin_channel_enabled toggle (SwitchPreference) or its preceding HorizontalDivider
β€’ FR-002: The Security Config screen MUST continue to display all other security configuration options unchanged
β€’ FR-003: The underlying proto field T383838admin_channel_enabled on T383838Config.SecurityConfig MUST NOT be modified or removed

Non-Functional Requirements

β€’ NFR-001: The Security Config screen must render without visual artifacts or layout shifts where the toggle was previously positioned
β€’ NFR-002: Existing screenshot tests (if any) for Security Config must be updated to reflect the removal

Source-Set Impact

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Source Set β”‚ Impact β”‚ Justification β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ T383838commonMain β”‚ Modified: T383838SecurityConfigScreen.kt (… β”‚ All UI is in commonMain per Constitution Β§I β”‚
β”‚ T383838androidMain β”‚ None β”‚ No platform-specific changes needed β”‚
β”‚ T383838jvmMain β”‚ None β”‚ No desktop-specific changes needed β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Design Standards Compliance

β€’ [x] New screens reviewed against design standards β€” N/A (removal only, no new UI)
β€’ [x] M3 component selection verified β€” N/A (no new components)
β€’ [x] Accessibility: TalkBack semantics β€” N/A (removing element, not adding)
β€’ [x] Typography β€” N/A (no new text)

Privacy Assessment

β€’ [x] No PII, location data, or cryptographic keys logged or exposed
β€’ [x] No new network calls that transmit user data
β€’ [x] Proto submodule (T383838core/proto) not modified (read-only upstream)

Success Criteria (mandatory)

Measurable Outcomes

β€’ SC-001: The Security Config screen displays zero instances of the admin channel enabled toggle
β€’ SC-002: All existing PKC-based admin operations complete successfully after the change (no regression)
β€’ SC-003: The Android Security Config screen field count matches the Apple client's Security Config screen (alignment achieved)

Assumptions

β€’ All business logic and UI composables reside in T383838commonMain source set
β€’ The proto field T383838admin_channel_enabled remains available for firmware communication; only the UI toggle is removed
β€’ String resource cleanup (T383838legacy_admin_channel) is considered optional follow-up work and not required for this feature
β€’ The Apple client's Security Config screen is the reference for cross-platform alignment
β€’ No other screens or components reference the T383838admin_channel_enabled toggle UI

Served by rngit 1.5.4 - Generated in 0.13s